#include "tcp_server.hpp"
#include<memory>

static void usage(std::string proc)
{
    std::cout<<"\nUsage "<<proc<<" port\n"<<std::endl; 
}

// 主函数入口，argc表示命令行参数个数，argv是参数数组
int main(int argc, char* argv[])
{
    // 检查命令行参数个数是否为2，如果不是则打印使用方法并退出程序
    if(argc !=2)
    {
        usage(argv[0]); // 调用usage函数打印程序的使用方法
        exit(1); // 退出程序，返回状态码1表示错误
    }

    // 将命令行第二个参数（端口号）转换为无符号16位整数
    uint16_t port  = atoi(argv[1]);
    // 创建一个TcpServer对象的智能指针，传入端口号
    std::unique_ptr<TcpServer> svr(new TcpServer(port));
    // 初始化服务器
    svr->initServer();
    // 启动服务器
    svr->start();
    // 程序正常结束，返回0
    return 0;
};